home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-08-18 | 5.5 KB | 145 lines | [TEXT/R*ch] |
- (* test/word8array.sml -- some test cases for Word8Array
- PS 1994-12-21, 1995-05-11 *)
-
- use "auxil.sml";
-
- local
- open Word8Array
- infix 9 sub;
- val array0 = fromList [];
- in
-
- val i2w = Word8.fromInt;
-
- val w127 = i2w 127;
-
- val a = fromList (map i2w [0,1,2,3,4,5,6]);
- val b = fromList (map i2w [44,55,66]);
- val c = fromList (map i2w [0,1,2,3,4,5,6]);
-
- val test1 =
- check'(fn () => a<>c);
- val test2 =
- check'(fn () =>
- array(0, w127) <> array0
- andalso array(0, w127) <> tabulate(0, fn _ => w127)
- andalso tabulate(0, fn _ => w127) <> fromList []
- andalso array(0, w127) <> array(0, w127)
- andalso tabulate(0, fn _ => w127) <> tabulate(0, fn _ => w127)
- andalso fromList [] <> fromList []);
-
- val d = tabulate(100, fn i => i2w (i mod 7));
-
- val test3 = check' (fn () => d sub 27 = i2w 6);
-
- val test4a = (tabulate(maxLen+1, i2w) seq "WRONG")
- handle Size => "OK" | _ => "WRONG";
-
- val test4b = (tabulate(~1, i2w) seq "WRONG")
- handle Size => "OK" | _ => "WRONG";
-
- val test4c =
- check'(fn () => length (tabulate(0, fn i => i2w (i div 0))) = 0);
-
- val test5a = check'(fn () => length (fromList []) = 0 andalso length a = 7);
- val test5b = check'(fn () => length array0 = 0);
-
- val test6a = (c sub ~1 seq "WRONG") handle Subscript => "OK" | _ => "WRONG";
- val test6b = (c sub 7 seq "WRONG") handle Subscript => "OK" | _ => "WRONG";
- val test6c = check'(fn () => c sub 0 = i2w 0);
-
- val e = array(203, i2w 0);
- val _ = (copy{src=d, si=0, dst=e, di=0, len=NONE};
- copy{src=b, si=0, dst=e, di=length d, len=NONE};
- copy{src=d, si=0, dst=e, di=length d + length b, len=NONE});
-
- fun a2v a = extract(a, 0, NONE);
- val ev = Word8Vector.concat [a2v d, a2v b, a2v d];
-
- val test7 = check'(fn () => length e = 203);
-
- val test8a = (update(e, ~1, w127); "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test8b = (update(e, length e, w127); "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
-
- val f = extract (e, 100, SOME 3);
-
- val test9 = check'(fn () => f = a2v b);
-
- val test9a = check'(fn () => ev = extract(e, 0, NONE)
- andalso ev = extract(e, 0, SOME (length e)));
- val test9b =
- check'(fn () => Word8Vector.fromList [] = extract(e, 100, SOME 0));
- val test9c = (extract(e, ~1, SOME (length e)) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test9d = (extract(e, length e+1, SOME 0) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test9e = (extract(e, 0, SOME (length e+1)) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test9f = (extract(e, 20, SOME ~1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test9g = (extract(e, ~1, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test9h = (extract(e, length e+1, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test9i =
- check'(fn () => a2v (fromList []) = extract(e, length e, SOME 0)
- andalso a2v (fromList []) = extract(e, length e, NONE));
-
- val _ = copy{src=e, si=0, dst=e, di=0, len=NONE};
- val g = array(203, w127);
- val _ = copy{src=e, si=0, dst=g, di=0, len=NONE};
-
- val test10a = check'(fn () => ev = extract(e, 0, NONE)
- andalso ev = extract(e, 0, SOME (length e)));
- val test10b = check'(fn () => ev = extract(g, 0, NONE)
- andalso ev = extract(g, 0, SOME (length g)));
-
- val _ = copy{src=g, si=203, dst=g, di=0, len=SOME 0};
- val test10c = check'(fn () => ev = extract(g, 0, NONE));
-
- val _ = copy{src=g, si=0, dst=g, di=203, len=SOME 0};
- val test10d = check'(fn () => ev = extract(g, 0, NONE));
-
- val _ = copy{src=g, si=0, dst=g, di=1, len=SOME (length g-1)};
- val test10e = check'(fn () => a2v b = extract(g, 101, SOME 3));
-
- val _ = copy{src=g, si=1, dst=g, di=0, len=SOME(length g-1)};
- val test10f = check'(fn () => a2v b = extract(g, 100, SOME 3));
-
- val _ = copy{src=g, si=202, dst=g, di=202, len=SOME 1};
- val test10g = check'(fn () => g sub 202 = i2w ((202-1-103) mod 7));
- val test10h = check'(fn () =>
- (copy{src=array0, si=0, dst=array0, di=0, len=NONE};
- array0 <> array(0, w127)));
- val test10i = check'(fn () =>
- (copy{src=array0, si=0, dst=array0, di=0, len=SOME 0};
- array0 <> array(0, w127)));
-
- val test11a = (copy{src=g, si= ~1, dst=g, di=0, len=NONE}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11b = (copy{src=g, si=0, dst=g, di= ~1, len=NONE}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11c = (copy{src=g, si=1, dst=g, di=0, len=NONE}; "OK")
- handle _ => "WRONG"
- val test11d = (copy{src=g, si=0, dst=g, di=1, len=NONE}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11e = (copy{src=g, si=203, dst=g, di=0, len=NONE}; "OK")
- handle _ => "WRONG"
-
- val test11f = (copy{src=g, si= ~1, dst=g, di=0, len=SOME (length g)}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11g = (copy{src=g, si=0, dst=g, di= ~1, len=SOME (length g)}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11h = (copy{src=g, si=1, dst=g, di=0, len=SOME (length g)}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11i = (copy{src=g, si=0, dst=g, di=1, len=SOME (length g)}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11j = (copy{src=g, si=0, dst=g, di=0, len=SOME (length g+1)}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
- val test11k = (copy{src=g, si=203, dst=g, di=0, len=SOME 1}; "WRONG")
- handle Subscript => "OK" | _ => "WRONG"
-
- end;
-